/**
 * LocalContrastFilterParameter.java
 * 
 * @date: 2012-02-13
 * @author: Xiaoyu Guo (MUN# 200982155)
 * This file is part of the course project for COMP 6752, 
 * Application of Computer Graphics. All the file is written
 * by myself.
 */
package mun.cs6752.project.filter.localContrast;

import mun.cs6752.project.filter.interfaces.IImageFilterParameter;

/**
 * @author Xiaoyu Guo
 *
 */
public class LocalContrastFilterParameter implements IImageFilterParameter {
    private double k = 0.05;
    private double r = 128;
    private int meanSize = 6;
    private LocalContrastMethods selectedMethod = LocalContrastMethods.Sauvola;
    private Mode selectedMode = Mode.Gray;

    public enum LocalContrastMethods{
        Niblack,
        Sauvola
    }
    
    public enum Mode{
        Gray,
        Color
    }
    
    public LocalContrastFilterParameter(){
    }
    
    public LocalContrastFilterParameter(double k, double r, int meanSize, LocalContrastMethods method){
        this.k = k;
        this.r = r;
        this.meanSize = meanSize;
        this.selectedMethod = method;
    }
    
    public double getK(){
        return k;
    }
    
    public void setK(double value){
        this.k = value;
    }
    
    public double getR(){
        return r;
    }
    
    public void setR(double value){
        this.r = value;
    }
    
    public int getMeanSize(){
        return this.meanSize;
    }
    
    public void setMeanSize(int value){
        this.meanSize = value;
    }

    public LocalContrastMethods getSelectedMethod() {
        return selectedMethod;
    }

    public void setSelectedMethod(LocalContrastMethods value) {
        this.selectedMethod = value;
    }

    public Mode getMode() {
        return selectedMode;
    }

    public void setMode(Mode selectedMode) {
        this.selectedMode = selectedMode;
    }
}
